Fully or partially automated media libraries, sometimes referred to as “libraries” or “robots”, are available to store and manipulate removable storage media, such as tapes used to store computer data for backup or archive purposes. A typical library may be equipped with a robotic or other mechanism for manipulating the media stored therein, such as by inserting a selected volume or unit of the media (e.g., a particular tape) into a read/write device associated with the unit, e.g., a tape drive configured to write data to and/or read data from the media. In the computer network environment, for example, one or more backup applications may be used to store data from one or more computers or other devices connected to the network (sometimes referred to herein as network “nodes” or “hosts”) on storage media associated with a library.
A media management application may be provided to facilitate the tracking of removable storage media resources and to coordinate the servicing of requests for removable media storage resources, such as a request by a backup application that a particular volume of media be mounted on a particular drive for a backup (or restore) operation. In some network environments, multiple competing demands for the same resource may be received by the media management application at the same time. For example a first request that a first volume be mounted on a designated media storage drive may be received and a second request that a second volume be mounted on the same drive may received while the first request is still pending. In such situations, the media management application must determine which request to service first.
One typical approach is to assign different priorities to different hosts and/or data sets having different levels of importance to network stakeholders (e.g., a commercial or other enterprise) and/or having different requirements for backup and/or restoration using removable storage media and associated storage devices. However, such a use of priorities may not be sufficient to ensure that the most important requests are serviced in a timely manner. For example, competing requests assigned the same priority may be received at the same time. Also, a storage device may be busy with a lower priority request that takes a long time to complete at a time when an urgent, higher priority request for the same device is received.
Therefore, there is a need for a way to ensure that removable storage media resources (e.g., drives) are utilized in a way that ensures that the varying removable storage media resource requirements of different hosts and/or data sets are met.